-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix build break because of missing metdata #8364
Conversation
In the previous change I didn't notice that the binplacing logic depends on metadata passing in being preserved in the items being returned. Because of that, I revert the collection change from List to HashSet and instead manually iterate through the list. The binplacing logic depends on duplicates being allowed versus the inner build project logic explicitly doesn't want duplicates to avoid unnecessary inner builds, hence adding a switch for it.
|
||
[Required] | ||
public string RuntimeGraph { get; set; } | ||
|
||
[Required] | ||
public string[] SupportedTargetFrameworks { get; set; } | ||
|
||
// Returns distinct items only. Compares the include values. Metadata is ignored. | ||
public bool Distinct { get; set; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to turn this off or on and why can't the behavior just be that we always return a Distinct value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Details are in the top comment. The binplacing logic which also uses this task requires non distinct values where-as the DispatchToInnerBuild logic which is responsible for filtering out non applicable inner builds requires distinct values.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok, makes sense.
In the previous change I didn't notice that the binplacing logic depends on metadata passing in being preserved in the items being returned. Because of that, I revert the collection change from List to HashSet and instead manually iterate through the list. The binplacing logic depends on duplicates being allowed versus the inner build project logic explicitly doesn't want duplicates to avoid unnecessary inner builds, hence adding a switch for it.
Tested this in dotnet/runtime for real this time. I didn't notice the break before as I tested a part of the libs subset in dotnet/runtime which wasn't affected.